home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / MediaHandlers.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  11KB  |  315 lines

  1. /*
  2.      File:        MediaHandlers.h
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.1
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __MEDIAHANDLERS__
  19. #define __MEDIAHANDLERS__
  20.  
  21. #ifndef __MEMORY__
  22. #include <Memory.h>
  23. #endif
  24. #ifndef __IMAGECOMPRESSION__
  25. #include <ImageCompression.h>
  26. #endif
  27. #ifndef __MOVIES__
  28. #include <Movies.h>
  29. #endif
  30.  
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif
  34.  
  35. #if PRAGMA_IMPORT_SUPPORTED
  36. #pragma import on
  37. #endif
  38.  
  39. #if PRAGMA_ALIGN_SUPPORTED
  40. #pragma options align=mac68k
  41. #endif
  42.  
  43. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  44.  
  45. enum {
  46.     handlerHasSpatial            = 1 << 0,
  47.     handlerCanClip                = 1 << 1,
  48.     handlerCanMatte                = 1 << 2,
  49.     handlerCanTransferMode        = 1 << 3,
  50.     handlerNeedsBuffer            = 1 << 4,
  51.     handlerNoIdle                = 1 << 5,
  52.     handlerNoScheduler            = 1 << 6,
  53.     handlerWantsTime            = 1 << 7,
  54.     handlerCGrafPortOnly        = 1 << 8
  55. };
  56.  
  57. /* media task flags */
  58.  
  59. enum {
  60.     mMustDraw                    = 1 << 3,
  61.     mAtEnd                        = 1 << 4,
  62.     mPreflightDraw                = 1 << 5,
  63.     mSyncDrawing                = 1 << 6
  64. };
  65.  
  66. /* media task result flags */
  67.  
  68. enum {
  69.     mDidDraw                    = 1 << 0,
  70.     mNeedsToDraw                = 1 << 2,
  71.     mDrawAgain                    = 1 << 3,
  72.     mPartialDraw                = 1 << 4
  73. };
  74.  
  75.  
  76. enum {
  77.     forceUpdateRedraw            = 1 << 0,
  78.     forceUpdateNewBuffer        = 1 << 1
  79. };
  80.  
  81. struct GetMovieCompleteParams {
  82.     short                             version;
  83.     Movie                             theMovie;
  84.     Track                             theTrack;
  85.     Media                             theMedia;
  86.     TimeScale                         movieScale;
  87.     TimeScale                         mediaScale;
  88.     TimeValue                         movieDuration;
  89.     TimeValue                         trackDuration;
  90.     TimeValue                         mediaDuration;
  91.     Fixed                             effectiveRate;
  92.     TimeBase                         timeBase;
  93.     short                             volume;
  94.     Fixed                             width;
  95.     Fixed                             height;
  96.     MatrixRecord                     trackMovieMatrix;
  97.     CGrafPtr                         moviePort;
  98.     GDHandle                         movieGD;
  99.     PixMapHandle                     trackMatte;
  100.     QTAtomContainer                 inputMap;
  101. };
  102. typedef struct GetMovieCompleteParams GetMovieCompleteParams;
  103.  
  104.  
  105. enum {
  106.     kMediaVideoParamBrightness    = 1,
  107.     kMediaVideoParamContrast    = 2,
  108.     kMediaVideoParamHue            = 3,
  109.     kMediaVideoParamSharpness    = 4,
  110.     kMediaVideoParamSaturation    = 5,
  111.     kMediaVideoParamBlackLevel    = 6,
  112.     kMediaVideoParamWhiteLevel    = 7
  113. };
  114.  
  115. extern pascal ComponentResult MediaInitialize(MediaHandler mh, GetMovieCompleteParams *gmc)
  116.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0501, 0x7000, 0xA82A);
  117.  
  118. extern pascal ComponentResult MediaSetHandlerCapabilities(MediaHandler mh, long flags, long flagsMask)
  119.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0502, 0x7000, 0xA82A);
  120.  
  121. extern pascal ComponentResult MediaIdle(MediaHandler mh, TimeValue atMediaTime, long flagsIn, long *flagsOut, const TimeRecord *movieTime)
  122.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0503, 0x7000, 0xA82A);
  123.  
  124. extern pascal ComponentResult MediaGetMediaInfo(MediaHandler mh, Handle h)
  125.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0504, 0x7000, 0xA82A);
  126.  
  127. extern pascal ComponentResult MediaPutMediaInfo(MediaHandler mh, Handle h)
  128.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0505, 0x7000, 0xA82A);
  129.  
  130. extern pascal ComponentResult MediaSetActive(MediaHandler mh, Boolean enableMedia)
  131.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0506, 0x7000, 0xA82A);
  132.  
  133. extern pascal ComponentResult MediaSetRate(MediaHandler mh, Fixed rate)
  134.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0507, 0x7000, 0xA82A);
  135.  
  136. extern pascal ComponentResult MediaGGetStatus(MediaHandler mh, ComponentResult *statusErr)
  137.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0508, 0x7000, 0xA82A);
  138.  
  139. extern pascal ComponentResult MediaTrackEdited(MediaHandler mh)
  140.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0509, 0x7000, 0xA82A);
  141.  
  142. extern pascal ComponentResult MediaSetMediaTimeScale(MediaHandler mh, TimeScale newTimeScale)
  143.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x050A, 0x7000, 0xA82A);
  144.  
  145. extern pascal ComponentResult MediaSetMovieTimeScale(MediaHandler mh, TimeScale newTimeScale)
  146.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x050B, 0x7000, 0xA82A);
  147.  
  148. extern pascal ComponentResult MediaSetGWorld(MediaHandler mh, CGrafPtr aPort, GDHandle aGD)
  149.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x050C, 0x7000, 0xA82A);
  150.  
  151. extern pascal ComponentResult MediaSetDimensions(MediaHandler mh, Fixed width, Fixed height)
  152.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x050D, 0x7000, 0xA82A);
  153.  
  154. extern pascal ComponentResult MediaSetClip(MediaHandler mh, RgnHandle theClip)
  155.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x050E, 0x7000, 0xA82A);
  156.  
  157. extern pascal ComponentResult MediaSetMatrix(MediaHandler mh, MatrixRecord *trackMovieMatrix)
  158.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x050F, 0x7000, 0xA82A);
  159.  
  160. extern pascal ComponentResult MediaGetTrackOpaque(MediaHandler mh, Boolean *trackIsOpaque)
  161.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0510, 0x7000, 0xA82A);
  162.  
  163. extern pascal ComponentResult MediaSetGraphicsMode(MediaHandler mh, long mode, const RGBColor *opColor)
  164.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0511, 0x7000, 0xA82A);
  165.  
  166. extern pascal ComponentResult MediaGetGraphicsMode(MediaHandler mh, long *mode, RGBColor *opColor)
  167.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0512, 0x7000, 0xA82A);
  168.  
  169. extern pascal ComponentResult MediaGSetVolume(MediaHandler mh, short volume)
  170.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0513, 0x7000, 0xA82A);
  171.  
  172. extern pascal ComponentResult MediaSetSoundBalance(MediaHandler mh, short balance)
  173.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0514, 0x7000, 0xA82A);
  174.  
  175. extern pascal ComponentResult MediaGetSoundBalance(MediaHandler mh, short *balance)
  176.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0515, 0x7000, 0xA82A);
  177.  
  178. extern pascal ComponentResult MediaGetNextBoundsChange(MediaHandler mh, TimeValue *when)
  179.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0516, 0x7000, 0xA82A);
  180.  
  181. extern pascal ComponentResult MediaGetSrcRgn(MediaHandler mh, RgnHandle rgn, TimeValue atMediaTime)
  182.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0517, 0x7000, 0xA82A);
  183.  
  184. extern pascal ComponentResult MediaPreroll(MediaHandler mh, TimeValue time, Fixed rate)
  185.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0518, 0x7000, 0xA82A);
  186.  
  187. extern pascal ComponentResult MediaSampleDescriptionChanged(MediaHandler mh, long index)
  188.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0519, 0x7000, 0xA82A);
  189.  
  190. extern pascal ComponentResult MediaHasCharacteristic(MediaHandler mh, OSType characteristic, Boolean *hasIt)
  191.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x051A, 0x7000, 0xA82A);
  192.  
  193. extern pascal ComponentResult MediaGetOffscreenBufferSize(MediaHandler mh, Rect *bounds, short depth, CTabHandle ctab)
  194.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x051B, 0x7000, 0xA82A);
  195.  
  196. extern pascal ComponentResult MediaSetHints(MediaHandler mh, long hints)
  197.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x051C, 0x7000, 0xA82A);
  198.  
  199. extern pascal ComponentResult MediaGetName(MediaHandler mh, Str255 name, long requestedLanguage, long *actualLanguage)
  200.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x051D, 0x7000, 0xA82A);
  201.  
  202. extern pascal ComponentResult MediaForceUpdate(MediaHandler mh, long forceUpdateFlags)
  203.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x051E, 0x7000, 0xA82A);
  204.  
  205. extern pascal ComponentResult MediaGetDrawingRgn(MediaHandler mh, RgnHandle *partialRgn)
  206.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x051F, 0x7000, 0xA82A);
  207.  
  208. extern pascal ComponentResult MediaGSetActiveSegment(MediaHandler mh, TimeValue activeStart, TimeValue activeDuration)
  209.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0520, 0x7000, 0xA82A);
  210.  
  211. extern pascal ComponentResult MediaInvalidateRegion(MediaHandler mh, RgnHandle invalRgn)
  212.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0521, 0x7000, 0xA82A);
  213.  
  214. extern pascal ComponentResult MediaGetNextStepTime(MediaHandler mh, short flags, TimeValue mediaTimeIn, TimeValue *mediaTimeOut, Fixed rate)
  215.  FIVEWORDINLINE(0x2F3C, 0x000E, 0x0522, 0x7000, 0xA82A);
  216.  
  217. extern pascal ComponentResult MediaSetNonPrimarySourceData(MediaHandler mh, long inputIndex, long dataDescriptionSeed, Handle dataDescription, void *data, long dataSize, ICMCompletionProcRecordPtr asyncCompletionProc, ProcPtr transferProc, void *refCon)
  218.  FIVEWORDINLINE(0x2F3C, 0x0020, 0x0523, 0x7000, 0xA82A);
  219.  
  220. extern pascal ComponentResult MediaChangedNonPrimarySource(MediaHandler mh, long inputIndex)
  221.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0524, 0x7000, 0xA82A);
  222.  
  223. extern pascal ComponentResult MediaTrackReferencesChanged(MediaHandler mh)
  224.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0525, 0x7000, 0xA82A);
  225.  
  226. extern pascal ComponentResult MediaGetSampleDataPointer(MediaHandler mh, long sampleNum, Ptr *dataPtr, long *dataSize, long *sampleDescIndex)
  227.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0526, 0x7000, 0xA82A);
  228.  
  229. extern pascal ComponentResult MediaReleaseSampleDataPointer(MediaHandler mh, long sampleNum)
  230.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0527, 0x7000, 0xA82A);
  231.  
  232. extern pascal ComponentResult MediaTrackPropertyAtomChanged(MediaHandler mh)
  233.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0528, 0x7000, 0xA82A);
  234.  
  235. extern pascal ComponentResult MediaSetTrackInputMapReference(MediaHandler mh, QTAtomContainer inputMap)
  236.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0529, 0x7000, 0xA82A);
  237.  
  238. extern pascal ComponentResult MediaSetGWorlds(MediaHandler mh, CGrafPtr directPort, GDHandle directGD, CGrafPtr offscreenPort, GDHandle offscreenGD)
  239.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x052A, 0x7000, 0xA82A);
  240.  
  241. extern pascal ComponentResult MediaSetVideoParam(MediaHandler mh, long whichParam, unsigned short *value)
  242.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x052B, 0x7000, 0xA82A);
  243.  
  244. extern pascal ComponentResult MediaGetVideoParam(MediaHandler mh, long whichParam, unsigned short *value)
  245.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x052C, 0x7000, 0xA82A);
  246.  
  247. extern pascal ComponentResult MediaCompare(MediaHandler mh, Boolean *isOK, Media srcMedia, ComponentInstance srcMediaComponent)
  248.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x052D, 0x7000, 0xA82A);
  249.  
  250.  
  251. enum {
  252.     kMediaInitializeSelect        = 0x0501,
  253.     kMediaSetHandlerCapabilitiesSelect = 0x0502,
  254.     kMediaIdleSelect            = 0x0503,
  255.     kMediaGetMediaInfoSelect    = 0x0504,
  256.     kMediaPutMediaInfoSelect    = 0x0505,
  257.     kMediaSetActiveSelect        = 0x0506,
  258.     kMediaSetRateSelect            = 0x0507,
  259.     kMediaGGetStatusSelect        = 0x0508,
  260.     kMediaTrackEditedSelect        = 0x0509,
  261.     kMediaSetMediaTimeScaleSelect = 0x050A,
  262.     kMediaSetMovieTimeScaleSelect = 0x050B,
  263.     kMediaSetGWorldSelect        = 0x050C,
  264.     kMediaSetDimensionsSelect    = 0x050D,
  265.     kMediaSetClipSelect            = 0x050E,
  266.     kMediaSetMatrixSelect        = 0x050F,
  267.     kMediaGetTrackOpaqueSelect    = 0x0510,
  268.     kMediaSetGraphicsModeSelect    = 0x0511,
  269.     kMediaGetGraphicsModeSelect    = 0x0512,
  270.     kMediaGSetVolumeSelect        = 0x0513,
  271.     kMediaSetSoundBalanceSelect    = 0x0514,
  272.     kMediaGetSoundBalanceSelect    = 0x0515,
  273.     kMediaGetNextBoundsChangeSelect = 0x0516,
  274.     kMediaGetSrcRgnSelect        = 0x0517,
  275.     kMediaPrerollSelect            = 0x0518,
  276.     kMediaSampleDescriptionChangedSelect = 0x0519,
  277.     kMediaHasCharacteristicSelect = 0x051A,
  278.     kMediaGetOffscreenBufferSizeSelect = 0x051B,
  279.     kMediaSetHintsSelect        = 0x051C,
  280.     kMediaGetNameSelect            = 0x051D,
  281.     kMediaForceUpdateSelect        = 0x051E,
  282.     kMediaGetDrawingRgnSelect    = 0x051F,
  283.     kMediaGSetActiveSegmentSelect = 0x0520,
  284.     kMediaInvalidateRegionSelect = 0x0521,
  285.     kMediaGetNextStepTimeSelect    = 0x0522,
  286.     kMediaSetNonPrimarySourceDataSelect = 0x0523,
  287.     kMediaChangedNonPrimarySourceSelect = 0x0524,
  288.     kMediaTrackReferencesChangedSelect = 0x0525,
  289.     kMediaGetSampleDataPointerSelect = 0x0526,
  290.     kMediaReleaseSampleDataPointerSelect = 0x0527,
  291.     kMediaTrackPropertyAtomChangedSelect = 0x0528,
  292.     kMediaSetTrackInputMapReferenceSelect = 0x0529,
  293.     kMediaSetGWorldsSelect        = 0x052A,
  294.     kMediaSetVideoParamSelect    = 0x052B,
  295.     kMediaGetVideoParamSelect    = 0x052C,
  296.     kMediaCompareSelect            = 0x052D
  297. };
  298.  
  299. #endif
  300.  
  301. #if PRAGMA_ALIGN_SUPPORTED
  302. #pragma options align=reset
  303. #endif
  304.  
  305. #if PRAGMA_IMPORT_SUPPORTED
  306. #pragma import off
  307. #endif
  308.  
  309. #ifdef __cplusplus
  310. }
  311. #endif
  312.  
  313. #endif /* __MEDIAHANDLERS__ */
  314.  
  315.